<?php defined('SYSPATH') or die('No direct script access.');
/**
 * 文件上传重命名抽象类
 *
 * @author  Yellow.Chow <aultoale@gmail.com>
 * @version $Id: rename.php 187 2012-05-04 01:37:01Z yellow.chow $
 * @license http://www.gnu.org/licenses/gpl-3.0.html    GPL 3
 */
abstract class Upload_Rename
{

    /**
     * 临时文件名
     *
     * @var string
     */
    protected $_tmp = NULL;

    /**
     * 构造方法
     *
     * @param  string  $tmp
     * @throws Upload_Exception
     */
    public function __construct($tmp)
    {
        if ( ! is_file($tmp))
        {
            throw new Upload_Exception('临时文件不存在 :tmp',
                array(':tmp', Debug::path($tmp)));
        }

        $this->_tmp = $tmp;
    }

    /**
     * 获取文件扩展名
     *
     * @param  string  $filename
     * @return string
     */
    public function get_ext($filename)
    {
        return strtolower(substr(strrchr($filename, '.'), 1));
    }

    /**
     * 设置参数
     *
     * @param  string  $path  存储路径
     * @param  string  $file  文件名
     * @return string  新文件名及路径
     */
    abstract public function save($path, $file);

}